Clean the arch_memory_op() for-loop header.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 26 Nov 2005 09:43:27 +0000 (10:43 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 26 Nov 2005 09:43:27 +0000 (10:43 +0100)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/x86_64/mm.c

index 7285a80fb635f05c6ff1b7a659f27d2713d43695..3a8e11460316ededed41916123183322fd76ca65 100644 (file)
@@ -190,7 +190,8 @@ long arch_memory_op(int op, void *arg)
         if ( copy_from_user(&xmml, arg, sizeof(xmml)) )
             return -EFAULT;
 
-        for ( i = 0, v = RDWR_MPT_VIRT_START; v != RDWR_MPT_VIRT_END; 
+        for ( i = 0, v = RDWR_MPT_VIRT_START;
+              (i != xmml.max_extents) && (v != RDWR_MPT_VIRT_END);
               i++, v += 1 << 21 )
         {
             l3e = l4e_to_l3e(idle_pg_table[l4_table_offset(v)])[
@@ -201,8 +202,6 @@ long arch_memory_op(int op, void *arg)
             if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) )
                 break;
             mfn = l2e_get_pfn(l2e) + l1_table_offset(v);
-            if ( i == xmml.max_extents )
-                break;
             if ( put_user(mfn, &xmml.extent_start[i]) )
                 return -EFAULT;
         }